class LightPathLinkList:
    """
    以链表的形式存储光路，每条光路都是一个结点

    Members
    -------
    head : LightPathNode
        光路链表头部结点
    numOfLightPath : int
        光路总数
    """

    def __init__(self):
        """
        初始化光路链表
        """
        self.head = None
        self.numOfLightPath = 0

    def addLP(self, newLP):
        """
        添加一条光路

        Parameters
        ----------
        newLP : LightPathNode
            新增的光路结点
        """
        p = self.head
        if(p):
            while(p.nextLP):
                p = p.nextLP
            p.nextLP = newLP
        else:
            self.head = newLP

class LightPathNode:
    """
    光路结点，用于表示一道光线

    Members
    -------
    startPos : list
        光路起始点坐标(x,y)
    angle : float
        光路方向角
    nextLP : LigthPathNode
        下一条光路
    """

    def __init__(self, startPos, angle):
        """
        初始化光路结点
        """
        self.startPos = startPos
        self.angle = angle
        self.nextLP = None
